// 验证用户名的
const uPattern = /^[a-zA-Z0-9_]{4,8}|[\u4e00-\u9fa5]{2,6}$/
export var validateName = (rule, value, callback) => {
  if (value === '') {
    callback(new Error('请输入账号!'))
  } else if (!uPattern.test(value)) {
    callback(new Error('4到8位（字母，数字，下划线）!'))
  } else {
    callback()
  }
}
// 验证密码的
const PwdPattern = /^[a-zA-Z0-9_]{2,8}$/
export var validatePwd = (rule, value, callback) => {
  if (value === '') {
    callback(new Error('请输入密码!'))
  } else if (!PwdPattern.test(value)) {
    callback(new Error('6到12位（字母，数字，下划线）!'))
  } else {
    callback()
  }
}

// 验证用户组的
export var validateGroup = (rule, value, callback) => {
  if (value === '') {
    callback(new Error('请输入用户组!'))
  } else {
    callback()
  }
}

// 导出修改密码的验证方法
const resetPwd = /^[a-zA-Z0-9_]{2,8}$/
export var validateNewPwd = function(str, o) {
  return (rule, value, callback) => {
    if (value === '') {
      callback(new Error(`请输入${str}`))
    } else if (!resetPwd.test(value)) {
      callback(new Error('6到12位（字母，数字，下划线）!'))
    } else {
      // 通过o接受this,当用户先输入确认新密码的时候不为空,然后再去调用验证确认密码的功能
      if (o.PwdForm.affirmpwd !== '') {
        //this获取dom元素,通过一个固定的方法去调用
        o.$refs.ruleForm.validateField('affirmpwd')
      }
      callback()
    }
  }
}
//导出确认密码的新功能
export var validAffirmpwd = function(str, o) {
  return (rule, value, callback) => {
    if (value === '') {
      callback(new Error(`请输入${str}`))
    } else if (!resetPwd.test(value)) {
      callback(new Error('6到12位（字母，数字，下划线）!'))
    } else {
      // 通过o来接受this,然后当新密码的值和再次输入密码的值不一样时提示用户
      if (o.PwdForm.newpwd !== value) {
        callback(new Error('两次密码不一致!'))
      }
      callback()
    }
  }
}
